import pwlf
import numpy as np
import os

# 以上的变量都拿到以后 然后把上面的变量放入到下面的函数里面 输出 status
# createNozzleMap输入：
#  nuzzleSeq，输入对应的喷阀序号组成的list，如[1,256]          下面就是y
#  pixelSeq，也就是输入的喷阀对应的图片坐标的list如[5,7650]，  下面就是x
#  int(nuzzleNumTotal)   输入的喷阀总数（转为整形）            下面是同名
#  savePath 就是保存文件的路径                                   下面是同名
#  nozzleMap 就是上面的相机分辨率  天元的选择的就是7680 或者手动输入的其他方案   下面是同名
#  curzeType 就是上面的拟合方式 暂时目前用的都是现行拟合                 下面是同名
#  int(badNozzle) 就是不可用的阀的序号（转为整形）                      下面是同名
# 以上就是这几个函数的输入的参数 后面就是去拟合了
# status = createNozzleMap(pixelSeq, nuzzleSeq, int(nuzzleNumTotal), savePath, nozzleMap, curzeType,
#                          int(badNozzle))

#线性拟合
def fitMap(x,y, savePath,fileName):
    x[0]=x[0]-1
    x[1]=x[1]-1
    deltax=x[1]-x[0]+1
    deltay=y[1]-y[0]
    step=deltay/deltax

    for n in range(deltay):
        y_oneP=int(n//step+x[0])
        #写入文件
        with open(savePath+"\\"+fileName+'.txt','a+') as f:
            f.write(str(y_oneP)+' ')
    print(savePath + fileName+'.txt')
    return 1

